
#define DATA_PIN 8
void setup()
{
  Serial.print(9600);
  while (!Serial) {}

  pinMode(DATA_PIN, INPUT);
}
byte readByte()
{
  byte b = 0;
  for (byte i = 0; i < 8; i++)
  {
    b <<= 1;
    b |= digitalRead(DATA_PIN);
  }
  return b;
}

void loop()
{
  byte bit_cc0, bit_cc1, bit_sign;
  char temp_byte0, temp_byte1;
  int temp_val;
  float temp;

  bit_cc0 = digitalRead(DATA_PIN);
  bit_cc1 = digitalRead(DATA_PIN);
    Serial.println(bit_cc0, HEX);
    Serial.println(bit_cc1, HEX);
  if (bit_cc0 == 0x00 && bit_cc1 == 0x00)
  {
    bit_sign = digitalRead(DATA_PIN);
    temp_byte0 =  readByte();
    temp_byte1 =  readByte();
    temp_val = (temp_byte0 << 8) + temp_byte1;

    if (bit_sign = 0x01)
    {
      temp_val = ~temp_val;
      temp_val &= 0xffff;
      temp_val ++;
      temp = (-3.90625 * temp_val / 1000.00);
    }
    else
    {
      temp = (3.90625 * temp_val / 1000.00);
    }
    Serial.println(temp);
    delay(1000);
  } else {
    delay(50);
  }


}
